#ifndef WIDGET_H
#define WIDGET_H

#include "badminton.h"
#include <QWidget>
#include <QWidget>
#include<QGraphicsView>
#include<QGraphicsScene>
#include<QGraphicsPixmapItem>
#include<QPushButton>
#include<QGraphicsTextItem>
#include <player1.h>
#include <player2.h>
#include <QObject>
#include<QKeyEvent>
#include<QTimer>
#include <QSoundEffect>

QT_BEGIN_NAMESPACE
namespace Ui {
class Widget;
}
QT_END_NAMESPACE

class Widget : public QWidget
{
    Q_OBJECT
public:
    Widget(QWidget *parent = nullptr);
    ~Widget();

    //按键检测函数
    void keyPressEvent(QKeyEvent *event);
    void keyReleaseEvent(QKeyEvent *event);
    void initmainmenu();

    QList<int> m_pressedKeys; // 存储当前按下的按键

    QGraphicsView m_View;//游戏视图
    QGraphicsScene m_Scene0;//游戏场景
    QGraphicsScene m_Scene2;//游戏场景
    QGraphicsScene m_Scene3;//结算场景
    QGraphicsScene m_Scene1;//开始场景
    QGraphicsScene m_Scene4;//Kill场景
    QGraphicsScene m_Scene5;//Forgive场景
    QGraphicsPixmapItem m_BackGround1;//开始背景
    QGraphicsPixmapItem p1Picture;
    QGraphicsPixmapItem p2Picture;
    QGraphicsPixmapItem stage;

    QGraphicsPixmapItem m_BackGround2;//游戏背景
    QGraphicsPixmapItem m_BackGround3;//结算背景
    QGraphicsPixmapItem KillBackGround;//Kill结局背景
    QGraphicsPixmapItem ForgiveBackGround;//Forgive结局背景

    QGraphicsTextItem* m_counterText;
    QPushButton* Startbtn;//开始按钮
    QPushButton* Killbtn;
    QPushButton* Forgivebtn;
    QPushButton* skipbtn;//跳过剧情
    QPushButton* nextbtn;//切换下一张图片

    Player1* player1;//玩家一
    Player2* player2;//玩家二
    Badminton* badminton;//羽毛球
    QTimer* GameTimer;//羽毛球计时器
    bool Player1S;//player1开球
    bool Player2S;//player2开球
    bool BadmintonIsServed;//球是否被发出
    int player1Total;//player1分数
    int player2Total;//player2分数
    bool Player1Win;//player1胜利
    bool Player2Win;//player1胜利
    QGraphicsPixmapItem player1Finish;//player1结算照片
    QGraphicsPixmapItem player2Finish;//player2结算照片
    QGraphicsPixmapItem FinishItem;//显示哪位玩家获胜
    QGraphicsPixmapItem* ScoreMap;//比分表
    // 在Widget类中添加成员变量

    QSoundEffect* backsound;
    QSoundEffect* victorysound;
    QSoundEffect* sound;
signals:
    void GameFinish();//跳转结算画面
public:
    int page;
public slots:
    void UpdateStage();
    void FinishGame();//结算函数
    void InitGame();//初始化函数
    void IncreaseScore(int value1,int value2);//比分增加
    void badmintonLanded();  // 新增羽毛球落地槽函数
    void InitKillend();//kill结局
    void InitForgiveend();//forgive结局

private:
    Ui::Widget *ui;


};
#endif // WIDGET_H
